package br.trainee.web.validators;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
import javax.inject.Inject;

import br.trainee.web.controller.LinguagemBean;

@FacesValidator(value="cpfValidator")
public class CPFValidator implements Validator {
	
	@Inject
	private LinguagemBean linguagem;

	@Override
	public void validate(FacesContext context, UIComponent component, Object valor) throws ValidatorException {
		
		if(valor != null){
			
			String valorRecebido = (String) valor;
			
			if(!valorRecebido.matches("[0-9]{3}\\.?[0-9]{3}\\.?[0-9]{3}\\-?[0-9]{2}")){
				
				throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, linguagem.getString("msg_validator_campo_cpf_invalido"),linguagem.getString("msg_validator_campo_mascara_cpf")));
			}
		}
		
	}

	public LinguagemBean getLinguagem() {
		return linguagem;
	}

	public void setLinguagem(LinguagemBean linguagem) {
		this.linguagem = linguagem;
	}
	
	

}
